Android 应用添加快捷方式

添加快捷方式需要向Luncher发送请求生成快捷方式

系统的broadcast receiver

1
2
3
4
5
6
7
<receiver                
android:name="com.android.launcher2.InstallShortcutReceiver"
android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
<intent-filter>
<action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
</intent-filter>
</receiver>

所以需要在桌面上创建快捷方式就需要权限

1
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

创建快捷方式代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void createShortCut(){     
//创建快捷方式的Intent
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//不允许重复创建
shortcutintent.putExtra("duplicate", false);
//需要现实的名称
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname));
//快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//点击快捷图片,运行的程序主入口
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , EnterActivity.class));
//发送广播。OK
sendBroadcast(shortcutintent);
}